#include "gamemath.h"

//float Gamemath::point_direction(float x1, float y1, float x2, float y2)
//{
//	float dX = x2 - x1;
//	float dY = y2 - y1;
//
//	float dist = sqrt((dX*dX) + (dY*dY));
//	float dXa = abs(dX);
//
//	float beta = radtodeg(acos(dXa / dist));
//
//	float angle;
//
//	if(dX > 0)
//	{
//		if (dY < 0)
//			angle = 270 + beta;
//		else
//			angle = 270 - beta;
//	}
//	else
//	{
//		if (dY < 0)
//			angle = 90 - beta;
//		else
//			angle = 90 + beta;
//	}
//	return (360 - fmodf(angle + 180, 360));
//}

float Gamemath::direction_difference(float x1, float y1, float x2, float y2)
{
	float dX = x2 - x1;
	float dY = y2 - y1;

	float dist = sqrt((dX*dX) + (dY*dY));
	float dXa = abs(dX);

	float beta = radtodeg(acos(dXa / dist));

	float angle;

	const float offset = -90;

	if(dX > 0)
	{
		if (dY < 0)
    		angle = offset + 180 + beta;
		else
    		angle = offset + 180 - beta;
	}
	else
	{
		if (dY < 0)
    		angle = offset - beta;
		else
    		angle = offset + beta;
	}
	return -angle;
}